From b880296354e98db738fc038cbffe2c21869ffa07 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 1 Nov 2017 18:16:11 +0100 Subject: [PATCH] window: Unset transient parent in set_display() If somebody changes a window's display, the transient parent cannot stay if it's on a different display. --- gtk/gtkwindow.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index c9716a698b..8aba4f8d52 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -9966,6 +9966,9 @@ gtk_window_set_display (GtkWindow *window, if (_gtk_widget_get_realized (widget)) gtk_widget_unrealize (widget); + if (priv->transient_parent && gtk_widget_get_display (GTK_WIDGET (priv->transient_parent)) != display) + gtk_window_set_transient_for (window, NULL); + gtk_window_free_key_hash (window); priv->display = display; #ifdef GDK_WINDOWING_X11 -- 2.30.2